package main

import (
	"flag"
	"fmt"
	"os"
)

func main() {
	getOsArgsWithFlag()
	//getOsArgs()

}

// go build .\commandline.go
// commandline.exe tomo d://aa log 99
// getOsArgs
//
//	@Description: 从命令行获取一些参数
func getOsArgs() {
	// 从命令行获取一些参数
	args := os.Args
	for index, value := range args {
		fmt.Printf("index=%d value=%s \n", index, value)
	}
}

// getOsArgsWithFlag
//
//	@Description: 使用flag包，获取指定参数的值
//
// 使用：~
// go build .\commandline.go
// .\commandline.exe -uhost='127.0.0.1' -uport=6379 -uname=mysql -upwd=mysql
func getOsArgsWithFlag() {
	var host string
	var port int
	var name string
	var pwd string
	//地址、使用的参数名、默认值、说明
	flag.StringVar(&host, "uhost", "localhost", "主机名")
	flag.IntVar(&port, "uport", 7, "端口")
	flag.StringVar(&name, "uname", "admin", "用户名")
	flag.StringVar(&pwd, "upwd", "123", "密码")
	flag.Parse()
	fmt.Println("host=", host) //host= 127.0.0.1
	fmt.Println("port=", port) //port= 6379
	fmt.Println("name=", name) //name= mysql
	fmt.Println("pwd=", pwd)   //pwd= mysql

}
